# 导包
from tensorflow.keras.models import load_model
from utils.data_generator import test_generator, pred_generator
from utils.image_plot import plot_images

# 读取测试集
test_gen = test_generator(
data_dir='../dataset/test',
    target_size = (64,64),
    batch_size = 32,
    class_mode='categorical'
)

# # 读取预测集
# pred_gen = pred_generator(
# data_dir='../dataset/natural_scenes/seg_pred',
#     target_size = (64,64),
#     batch_size = 32,
#     class_mode=None
# )

'''
模型载入tf.keras.model.load_model
用到的参数
- filepath: 载入模型存放的路径。

模型验证tf.keras.Sequential.evaluate
用到的参数：
- x: 输入的验证集，可以用ImageDataGenerator数据。

模型预测tf.keras.Sequential.predict
用到的参数：
- x: 需要做预测的数据集，可以用ImageDataGenerator数据。
'''

# 模型保存的相对路径
model_path = '../model/model-2020-08-18-16-32-48'

# 载入模型
loaded_model = load_model(filepath=model_path)

# 模型验证测试集
loss, accuracy = loaded_model.evaluate(x=test_gen)

# # 获取一个batch_size预测集
# pred_batch = pred_gen.next()
#
# # 载入的模型对一个batch_size的预测集进行预测
# pred_result = loaded_model.predict(x=pred_batch)
#
# # 取15张预测集图片的结果进行查看
# plot_images(pred_batch, pred_result)